package com.ruoyi.jeeplus.modules.screen.wlw.wlw_screen_PV.service.impl;

import com.google.gson.Gson;
import com.ruoyi.common.utils.mqtt.MqttPushClient;
import com.ruoyi.jeeplus.modules.screen.wlw.wlw_screen_PV.domain.MqttMessageDomain;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 光伏Service业务层处理
 *
 * @author LAYH
 * @date 2024-10-20
 */
@Service
public class Wlw_screen_PVServiceImpl{
    @Autowired
    MqttPushClient mqttPushClient;
    public void zeigen(String all){
        System.out.println("转发过来了------------------------");
        // 1. 提取 JSON 数据
        String jsonData = extractJsonData(all);


        //测试开始
        mqttPushClient.publish(1,false,"PV/123/getdata","ok");
        //测试结束
        if (jsonData != null) {
            // 2. 使用 Gson 解析 JSON 数据
            Gson gson = new Gson();
            try {
                // 反序列化 JSON 字符串为 Java 对象（Domain 类）
                MqttMessageDomain messageDomain = gson.fromJson(jsonData, MqttMessageDomain.class);

                // 3. 打印结果或后续处理
                System.out.println("转换后的对象: " + messageDomain);
            } catch (Exception e) {
                // 错误处理：如果 JSON 无法正确解析
                System.out.println("解析 JSON 数据时发生错误: " + e.getMessage());
            }
        } else {
            System.out.println("未能提取 JSON 数据");
        }
}
    private String extractJsonData(String all) {
        // 假设 JSON 部分在字符串的第一个 "{" 到最后一个 "}" 之间
        int startIndex = all.indexOf("{");
        int endIndex = all.lastIndexOf("}");

        if (startIndex != -1 && endIndex != -1 && endIndex > startIndex) {
            return all.substring(startIndex, endIndex + 1);  // 返回完整的 JSON 部分
        }
        return null;  // 如果没有找到 JSON 数据部分
    }
}
